iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 22
0
自我挑戰組

我的月薪嬌妻:HTTP系列 第 22

Day22-20% ? %20 ?-URLEncode-1

  • 分享至 

  • xImage
  •  

根據RFC3986中提到URI有些保留字(Reserved Characters),目的是為了避免和原本URI的通用語法(generic syntax)衝突,一旦出現這種情況,必須先使用百分比編碼(Percent-Encoding)將衝突的資料編碼之後再產生URI。

百分比編碼方式如:%HEXDIG HEXDIG

舉個例子,%20,代表空白字元,為什麼? 其實這邊的空白字元為ASCII中的00100000,以10進制來看為32,以16進制來看為20。

這個例子來看

GET /index.php?q=news&act=info&id=90324&subtitle=%5B%E6%9B%B8%E6%91%98%5D%20%E4%B8%83%E6%8B%9B%E8%82%8C%E5%8A%9B%E8%A8%93%E7%B7%B4%20%E6%B8%9B%E8%BC%95%E8%86%9D%E8%93%8B%E8%B2%A0%E6%93%94 HTTP/1.1
Host: tw.running.biji.co
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: https://www.google.com.tw/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-TW,zh;q=0.8,en-US;q=0.6,en;q=0.4,pt;q=0.2
Cookie: biji_user=twrunningbijico_583af606961741.86331768; __auc=ff8a4d4e1546fbf612fce2f73fa; _ga=GA1.2.439080984.1462163694

其中找物品的條件(query string)內的subtitle看起來很像亂碼,其實%5B是ASCII的[,%5D是ASCII的],至於在中間的是中文字,%E6%9B%B8是書,%E6%91%98是摘,由此可知瀏覽器實際發送Request中的URL會利用百分比編碼幫你先做處理。


上一篇
Day21-X開頭的header
下一篇
Day23-%20 ? + ?-URLEncode-2
系列文
我的月薪嬌妻:HTTP30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言